home *** CD-ROM | disk | FTP | other *** search
- #Authors: Shmuel Cohen and Boris ???
-
- viewclear();
-
- pt1 = ctlpt( P3, 1.0, 0.5, 0, 6.0 );
- pt2 = ctlpt( P3, 1.0, 0.7, 0, 6.7 );
- pt3 = ctlpt( P3, 1.0, 0.9, 0, 6.9 );
- pt4 = ctlpt( P3, 1.0, 1.1, 0, 7.1 );
- pt5 = ctlpt( P3, 1.0, 1.3, 0, 7.4 );
- pt6 = ctlpt( P3, 1.0, 1.4, 0, 7.7 );
- pt7 = ctlpt( P3, 1.0, 1.5, 0, 7.8 );
- pt8 = ctlpt( P3, 1.0, 1.4, 0, 8.0 );
- pt9 = ctlpt( P3, 1.0, 0.5, 0, 8.0 );
-
- br1 = CBEZIER ( list ( pt1, pt2, pt3 ) );
- br2 = CBEZIER ( list ( pt3, pt4, pt5 ) );
- br3 = CBEZIER ( list ( pt5, pt6, pt7 ) );
- br4 = CBEZIER ( list ( pt7, pt8, pt9 ) );
- brsum = br1 + br2 + br3 + br4;
- brsf = SURFREV( brsum );
-
- cen = vector ( 0.0, 0.0, 8.0 );
- st_pos = vector ( 0.5, 0.0, 8.0 );
- end_pos = vector ( 0.0, 0.0, 8.5 );
- cir = ARC ( st_pos, cen, end_pos );
- half_sf = SURFREV ( cir );
-
- sf = sphere(vector(0,0,8.7), 0.2);
-
- ptp1 = ctlpt( P3, 1.0, 0.5, 0, 5.9 );
- ptp2 = ctlpt( P3, 1.0, 0.9, 0, 6.0 );
- ptp3 = ctlpt( P3, 1.0, 0.5, 0, 6.1 );
- brp1 = CBEZIER ( list ( ptp1, ptp2, ptp3 ) );
- ptp1 = ctlpt( P3, 1.0, 0.5, 0, 6.1 );
- ptp2 = ctlpt( P3, 1.0, 1.0, 0, 6.2 );
- ptp3 = ctlpt( P3, 1.0, 0.5, 0, 6.3 );
- brp2 = CBEZIER ( list ( ptp1, ptp2, ptp3 ) );
- brp3 = brp1 + brp2;
- brsfp = SURFREV( brp3 );
-
-
- ptp5 = ctlpt( P3, 1.0, 0.8, 0, 6.7 );
- ptp6 = ctlpt( P3, 1.0, 2.0, 0, 6.9 );
- ptp7 = ctlpt( P3, 1.0, 0.9, 0, 7.1 );
- brp4 = CBEZIER ( list ( ptp5, ptp6, ptp7 ) );
- brsf2 = SURFREV( brp4 );
-
- crown_list = list ( brsf, half_sf, sf, brsfp, brsf2 );
-
-
- pp1 = ctlpt( P3, 1.0, 0.75, 0, 0.0 );
- pp2 = ctlpt( P3, 1.0, 1.8, 0, 0.0 );
- pp3 = ctlpt( P3, 1.0, 1.85, 0, 0.125 );
- bb1 = CBEZIER ( list ( pp1, pp2, pp3 ) );
- bsf1 = SURFREV( bb1 );
-
- #base1 = con2(vector(0,0,0), vector(0,0,0.5), 1.8, 2);
-
- base1 = con2(vector(0,0,0.125), vector(0,0,0.25), 1.85, 1.95);
-
- pp4 = ctlpt( P3, 1.0, 1.95, 0, 0.375 );
- pp5 = ctlpt( P3, 1.0, 2.0, 0, 0.5 );
- pp6 = ctlpt( P3, 1.0, 1.9, 0, 0.5 );
- bb2 = CBEZIER ( list ( pp4, pp5, pp6 ) );
- bsf2 = SURFREV( bb2 );
-
- pp7 = ctlpt( P3, 1.0, 1.9, 0, 0.5 );
- pp8 = ctlpt( P3, 1.0, 1.8, 0, 0.5 );
- pp9 = ctlpt( P3, 1.0, 1.8, 0, 0.6 );
- bb3 = CBEZIER ( list ( pp7, pp8, pp9 ) );
- bsf3 = SURFREV( bb3 );
-
- pp10 = ctlpt( P3, 1.0, 1.8, 0, 0.6 );
- pp11 = ctlpt( P3, 1.0, 1.8, 0, 0.7 );
- pp12 = ctlpt( P3, 1.0, 1.9, 0, 0.7 );
- bb4 = CBEZIER ( list ( pp10, pp11, pp12 ) );
- bsf4 = SURFREV( bb4 );
-
- #base2 = con2(vector(0,0,0.5), vector(0,0,0.2), 1.8, 1.8);
-
- pp13 = ctlpt( P3, 1.0, 1.9, 0, 0.7 );
- pp14 = ctlpt( P3, 1.0, 2.0, 0, 0.7 );
- pp15 = ctlpt( P3, 1.0, 1.9, 0, 0.83 );
- bb5 = CBEZIER ( list ( pp13, pp14, pp15 ) );
- bsf5 = SURFREV( bb5 );
-
- #base3 = con2(vector(0,0,0.7), vector(0,0,1.3), 2, 1);
- base3 = con2(vector(0,0,0.83), vector(0,0,1.04), 1.9, 1.1);
-
- pp16 = ctlpt( P3, 1.0, 1.1, 0, 1.87 );
- pp17 = ctlpt( P3, 1.0, 1.0, 0, 2.0 );
- pp18 = ctlpt( P3, 1.0, 1.0, 0, 2.1 );
- bb6 = CBEZIER ( list ( pp16, pp17, pp18 ) );
- bsf6 = SURFREV( bb6 );
-
- #base4 = con2(vector(0,0,2), vector(0,0,0.35), 1, 1);
- base4 = con2(vector(0,0,2.1), vector(0,0,0.15), 1, 1);
-
- pp19 = ctlpt( P3, 1.0, 1.0, 0, 2.25 );
- pp20 = ctlpt( P3, 1.0, 1.0, 0, 2.35 );
- pp21 = ctlpt( P3, 1.0, 0.95, 0, 2.715 );
- bb7 = CBEZIER ( list ( pp19, pp20, pp21 ) );
- bsf7 = SURFREV( bb7 );
-
- base5 = con2(vector(0,0,2.715), vector(0,0,3.285), 0.95, 0.5);
-
-
-
- color( crown_list, white );
- bsf_list = list ( bsf1, bsf2, bsf3, bsf4, bsf5, bsf6, bsf7 );
- color( bsf_list, white );
- base_list = list(base1,base3,base4,base5);
- color( base_list, white );
-
- Cross = arc( vector( -0.11, -0.01, 0.0 ),
- vector( -0.1, -0.1, 0.0 ),
- vector( -0.1, -0.11, 0.0 ) ) +
- arc( vector( 0.1, -0.11, 0.0 ),
- vector( 0.1, -0.1, 0.0 ),
- vector( 0.11, -0.1, 0.0 ) ) +
- arc( vector( 0.11, 0.1, 0.0 ),
- vector( 0.1, 0.1, 0.0 ),
- vector( 0.1, 0.11, 0.0 ) ) +
- arc( vector( -0.1, 0.11, 0.0 ),
- vector( -0.1, 0.1, 0.0 ),
- vector( -0.11, 0.1, 0.0 ) ) +
- ctlpt( E2, -0.11, -0.1 );
-
-
- scaleCrv = cbspline( 3,
- list( ctlpt( E2, 0.05, 1.0 ),
- ctlpt( E2, 0.1, 0.0 ),
- ctlpt( E2, 0.2, 2.0 ),
- ctlpt( E2, 0.3, 0.0 ),
- ctlpt( E2, 0.4, 2.0 ),
- ctlpt( E2, 0.5, 0.0 ),
- ctlpt( E2, 0.6, 2.0 ),
- ctlpt( E2, 0.7, 0.0 ),
- ctlpt( E2, 0.8, 2.0 ),
- ctlpt( E2, 0.85, 1.0 ) ),
- list( KV_OPEN ) );
- Axis = circle(vector(0.0,0.0,8.1),1);
- Frame = circle( vector( 0, 0, 0 ), 1 ) *
- rotx( 90 ) * trans( vector( 1.5, 0.0, 0.0 ) );
-
- s = swpsclsrf( Cross, Axis, scaleCrv, off,4 );
-
- color(s,white);
-
- queen = list(bsf_list, base_list, crown_list, s);
- viewobj(queen);
-
- free( cross );
-